/**
 *  * Copyright (c) 2008 - 2017 Profactor GmbH, TU Wien ACIN, fortiss GmbH
 *  *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0
 *  *
 *  * Contributors:
 *  *   Gerhard Ebenhofer, Alois Zoitl, Ingo Hegny, Monika Wenger, Martin Jobst
 *  *     - initial API and implementation and/or initial documentation
 *  *******************************************************************************
 */
package org.eclipse.fordiac.ide.model.data.provider;

import java.util.ArrayList;
import java.util.Collection;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.fordiac.ide.model.data.util.DataAdapterFactory;

/** This is the factory that is used to provide the interfaces needed to support Viewers. The adapters generated by this
 * factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}. The adapters
 * also support Eclipse property sheets. Note that most of the adapters are shared among multiple instances. <!--
 * begin-user-doc --> <!-- end-user-doc -->
 *
 * @generated */
public class DataItemProviderAdapterFactory extends DataAdapterFactory
		implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
	/** This keeps track of the root adapter factory that delegates to this adapter factory. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	protected ComposedAdapterFactory parentAdapterFactory;

	/** This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	protected IChangeNotifier changeNotifier = new ChangeNotifier();

	/** This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}. <!--
	 * begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected Collection<Object> supportedTypes = new ArrayList<>();

	/** This constructs an instance. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	public DataItemProviderAdapterFactory() {
		supportedTypes.add(IEditingDomainItemProvider.class);
		supportedTypes.add(IStructuredItemContentProvider.class);
		supportedTypes.add(ITreeItemContentProvider.class);
		supportedTypes.add(IItemLabelProvider.class);
		supportedTypes.add(IItemPropertySource.class);
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyDerivedType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyDerivedTypeItemProvider anyDerivedTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyDerivedType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyDerivedTypeAdapter() {
		if (anyDerivedTypeItemProvider == null) {
			anyDerivedTypeItemProvider = new AnyDerivedTypeItemProvider(this);
		}

		return anyDerivedTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.ArrayType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected ArrayTypeItemProvider arrayTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.ArrayType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createArrayTypeAdapter() {
		if (arrayTypeItemProvider == null) {
			arrayTypeItemProvider = new ArrayTypeItemProvider(this);
		}

		return arrayTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.DirectlyDerivedType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected DirectlyDerivedTypeItemProvider directlyDerivedTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.DirectlyDerivedType}. <!--
	 * begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createDirectlyDerivedTypeAdapter() {
		if (directlyDerivedTypeItemProvider == null) {
			directlyDerivedTypeItemProvider = new DirectlyDerivedTypeItemProvider(this);
		}

		return directlyDerivedTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.EnumeratedType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected EnumeratedTypeItemProvider enumeratedTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.EnumeratedType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createEnumeratedTypeAdapter() {
		if (enumeratedTypeItemProvider == null) {
			enumeratedTypeItemProvider = new EnumeratedTypeItemProvider(this);
		}

		return enumeratedTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.EnumeratedValue}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected EnumeratedValueItemProvider enumeratedValueItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.EnumeratedValue}. <!-- begin-user-doc
	 * --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createEnumeratedValueAdapter() {
		if (enumeratedValueItemProvider == null) {
			enumeratedValueItemProvider = new EnumeratedValueItemProvider(this);
		}

		return enumeratedValueItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.StructuredType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected StructuredTypeItemProvider structuredTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.StructuredType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createStructuredTypeAdapter() {
		if (structuredTypeItemProvider == null) {
			structuredTypeItemProvider = new StructuredTypeItemProvider(this);
		}

		return structuredTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.Subrange} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected SubrangeItemProvider subrangeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.Subrange}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createSubrangeAdapter() {
		if (subrangeItemProvider == null) {
			subrangeItemProvider = new SubrangeItemProvider(this);
		}

		return subrangeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.SubrangeType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected SubrangeTypeItemProvider subrangeTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.SubrangeType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createSubrangeTypeAdapter() {
		if (subrangeTypeItemProvider == null) {
			subrangeTypeItemProvider = new SubrangeTypeItemProvider(this);
		}

		return subrangeTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.ValueType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected ValueTypeItemProvider valueTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.ValueType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createValueTypeAdapter() {
		if (valueTypeItemProvider == null) {
			valueTypeItemProvider = new ValueTypeItemProvider(this);
		}

		return valueTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.DerivedType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected DerivedTypeItemProvider derivedTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.DerivedType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createDerivedTypeAdapter() {
		if (derivedTypeItemProvider == null) {
			derivedTypeItemProvider = new DerivedTypeItemProvider(this);
		}

		return derivedTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.EventType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected EventTypeItemProvider eventTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.EventType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createEventTypeAdapter() {
		if (eventTypeItemProvider == null) {
			eventTypeItemProvider = new EventTypeItemProvider(this);
		}

		return eventTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyTypeItemProvider anyTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyTypeAdapter() {
		if (anyTypeItemProvider == null) {
			anyTypeItemProvider = new AnyTypeItemProvider(this);
		}

		return anyTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyElementaryType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyElementaryTypeItemProvider anyElementaryTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyElementaryType}. <!-- begin-user-doc
	 * --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyElementaryTypeAdapter() {
		if (anyElementaryTypeItemProvider == null) {
			anyElementaryTypeItemProvider = new AnyElementaryTypeItemProvider(this);
		}

		return anyElementaryTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyMagnitudeType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyMagnitudeTypeItemProvider anyMagnitudeTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyMagnitudeType}. <!-- begin-user-doc
	 * --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyMagnitudeTypeAdapter() {
		if (anyMagnitudeTypeItemProvider == null) {
			anyMagnitudeTypeItemProvider = new AnyMagnitudeTypeItemProvider(this);
		}

		return anyMagnitudeTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyNumType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyNumTypeItemProvider anyNumTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyNumType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyNumTypeAdapter() {
		if (anyNumTypeItemProvider == null) {
			anyNumTypeItemProvider = new AnyNumTypeItemProvider(this);
		}

		return anyNumTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyRealType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyRealTypeItemProvider anyRealTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyRealType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyRealTypeAdapter() {
		if (anyRealTypeItemProvider == null) {
			anyRealTypeItemProvider = new AnyRealTypeItemProvider(this);
		}

		return anyRealTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.RealType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected RealTypeItemProvider realTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.RealType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createRealTypeAdapter() {
		if (realTypeItemProvider == null) {
			realTypeItemProvider = new RealTypeItemProvider(this);
		}

		return realTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.LrealType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected LrealTypeItemProvider lrealTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.LrealType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createLrealTypeAdapter() {
		if (lrealTypeItemProvider == null) {
			lrealTypeItemProvider = new LrealTypeItemProvider(this);
		}

		return lrealTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyIntType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyIntTypeItemProvider anyIntTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyIntType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyIntTypeAdapter() {
		if (anyIntTypeItemProvider == null) {
			anyIntTypeItemProvider = new AnyIntTypeItemProvider(this);
		}

		return anyIntTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyUnsignedType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyUnsignedTypeItemProvider anyUnsignedTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyUnsignedType}. <!-- begin-user-doc
	 * --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyUnsignedTypeAdapter() {
		if (anyUnsignedTypeItemProvider == null) {
			anyUnsignedTypeItemProvider = new AnyUnsignedTypeItemProvider(this);
		}

		return anyUnsignedTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.UsintType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected UsintTypeItemProvider usintTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.UsintType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createUsintTypeAdapter() {
		if (usintTypeItemProvider == null) {
			usintTypeItemProvider = new UsintTypeItemProvider(this);
		}

		return usintTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.UintType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected UintTypeItemProvider uintTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.UintType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createUintTypeAdapter() {
		if (uintTypeItemProvider == null) {
			uintTypeItemProvider = new UintTypeItemProvider(this);
		}

		return uintTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.UdintType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected UdintTypeItemProvider udintTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.UdintType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createUdintTypeAdapter() {
		if (udintTypeItemProvider == null) {
			udintTypeItemProvider = new UdintTypeItemProvider(this);
		}

		return udintTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.UlintType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected UlintTypeItemProvider ulintTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.UlintType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createUlintTypeAdapter() {
		if (ulintTypeItemProvider == null) {
			ulintTypeItemProvider = new UlintTypeItemProvider(this);
		}

		return ulintTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnySignedType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnySignedTypeItemProvider anySignedTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnySignedType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnySignedTypeAdapter() {
		if (anySignedTypeItemProvider == null) {
			anySignedTypeItemProvider = new AnySignedTypeItemProvider(this);
		}

		return anySignedTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.SintType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected SintTypeItemProvider sintTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.SintType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createSintTypeAdapter() {
		if (sintTypeItemProvider == null) {
			sintTypeItemProvider = new SintTypeItemProvider(this);
		}

		return sintTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.IntType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected IntTypeItemProvider intTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.IntType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createIntTypeAdapter() {
		if (intTypeItemProvider == null) {
			intTypeItemProvider = new IntTypeItemProvider(this);
		}

		return intTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.DintType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected DintTypeItemProvider dintTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.DintType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createDintTypeAdapter() {
		if (dintTypeItemProvider == null) {
			dintTypeItemProvider = new DintTypeItemProvider(this);
		}

		return dintTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.LintType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected LintTypeItemProvider lintTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.LintType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createLintTypeAdapter() {
		if (lintTypeItemProvider == null) {
			lintTypeItemProvider = new LintTypeItemProvider(this);
		}

		return lintTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyDurationType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyDurationTypeItemProvider anyDurationTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyDurationType}. <!-- begin-user-doc
	 * --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyDurationTypeAdapter() {
		if (anyDurationTypeItemProvider == null) {
			anyDurationTypeItemProvider = new AnyDurationTypeItemProvider(this);
		}

		return anyDurationTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.TimeType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected TimeTypeItemProvider timeTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.TimeType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createTimeTypeAdapter() {
		if (timeTypeItemProvider == null) {
			timeTypeItemProvider = new TimeTypeItemProvider(this);
		}

		return timeTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.LtimeType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected LtimeTypeItemProvider ltimeTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.LtimeType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createLtimeTypeAdapter() {
		if (ltimeTypeItemProvider == null) {
			ltimeTypeItemProvider = new LtimeTypeItemProvider(this);
		}

		return ltimeTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyBitType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyBitTypeItemProvider anyBitTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyBitType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyBitTypeAdapter() {
		if (anyBitTypeItemProvider == null) {
			anyBitTypeItemProvider = new AnyBitTypeItemProvider(this);
		}

		return anyBitTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.BoolType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected BoolTypeItemProvider boolTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.BoolType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createBoolTypeAdapter() {
		if (boolTypeItemProvider == null) {
			boolTypeItemProvider = new BoolTypeItemProvider(this);
		}

		return boolTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.ByteType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected ByteTypeItemProvider byteTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.ByteType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createByteTypeAdapter() {
		if (byteTypeItemProvider == null) {
			byteTypeItemProvider = new ByteTypeItemProvider(this);
		}

		return byteTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.WordType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected WordTypeItemProvider wordTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.WordType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createWordTypeAdapter() {
		if (wordTypeItemProvider == null) {
			wordTypeItemProvider = new WordTypeItemProvider(this);
		}

		return wordTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.DwordType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected DwordTypeItemProvider dwordTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.DwordType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createDwordTypeAdapter() {
		if (dwordTypeItemProvider == null) {
			dwordTypeItemProvider = new DwordTypeItemProvider(this);
		}

		return dwordTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.LwordType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected LwordTypeItemProvider lwordTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.LwordType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createLwordTypeAdapter() {
		if (lwordTypeItemProvider == null) {
			lwordTypeItemProvider = new LwordTypeItemProvider(this);
		}

		return lwordTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyCharsType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyCharsTypeItemProvider anyCharsTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyCharsType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyCharsTypeAdapter() {
		if (anyCharsTypeItemProvider == null) {
			anyCharsTypeItemProvider = new AnyCharsTypeItemProvider(this);
		}

		return anyCharsTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnySCharsType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AnySCharsTypeItemProvider anySCharsTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnySCharsType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAnySCharsTypeAdapter() {
		if (anySCharsTypeItemProvider == null) {
			anySCharsTypeItemProvider = new AnySCharsTypeItemProvider(this);
		}

		return anySCharsTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyWCharsType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected AnyWCharsTypeItemProvider anyWCharsTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyWCharsType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createAnyWCharsTypeAdapter() {
		if (anyWCharsTypeItemProvider == null) {
			anyWCharsTypeItemProvider = new AnyWCharsTypeItemProvider(this);
		}

		return anyWCharsTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyStringType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyStringTypeItemProvider anyStringTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyStringType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyStringTypeAdapter() {
		if (anyStringTypeItemProvider == null) {
			anyStringTypeItemProvider = new AnyStringTypeItemProvider(this);
		}

		return anyStringTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.StringType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected StringTypeItemProvider stringTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.StringType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createStringTypeAdapter() {
		if (stringTypeItemProvider == null) {
			stringTypeItemProvider = new StringTypeItemProvider(this);
		}

		return stringTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.WstringType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected WstringTypeItemProvider wstringTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.WstringType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createWstringTypeAdapter() {
		if (wstringTypeItemProvider == null) {
			wstringTypeItemProvider = new WstringTypeItemProvider(this);
		}

		return wstringTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyCharType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyCharTypeItemProvider anyCharTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyCharType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyCharTypeAdapter() {
		if (anyCharTypeItemProvider == null) {
			anyCharTypeItemProvider = new AnyCharTypeItemProvider(this);
		}

		return anyCharTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.CharType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected CharTypeItemProvider charTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.CharType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createCharTypeAdapter() {
		if (charTypeItemProvider == null) {
			charTypeItemProvider = new CharTypeItemProvider(this);
		}

		return charTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.WcharType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected WcharTypeItemProvider wcharTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.WcharType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createWcharTypeAdapter() {
		if (wcharTypeItemProvider == null) {
			wcharTypeItemProvider = new WcharTypeItemProvider(this);
		}

		return wcharTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.AnyDateType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected AnyDateTypeItemProvider anyDateTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.AnyDateType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createAnyDateTypeAdapter() {
		if (anyDateTypeItemProvider == null) {
			anyDateTypeItemProvider = new AnyDateTypeItemProvider(this);
		}

		return anyDateTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.DateAndTimeType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected DateAndTimeTypeItemProvider dateAndTimeTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.DateAndTimeType}. <!-- begin-user-doc
	 * --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createDateAndTimeTypeAdapter() {
		if (dateAndTimeTypeItemProvider == null) {
			dateAndTimeTypeItemProvider = new DateAndTimeTypeItemProvider(this);
		}

		return dateAndTimeTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.LdtType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected LdtTypeItemProvider ldtTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.LdtType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createLdtTypeAdapter() {
		if (ldtTypeItemProvider == null) {
			ldtTypeItemProvider = new LdtTypeItemProvider(this);
		}

		return ldtTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.DateType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected DateTypeItemProvider dateTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.DateType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createDateTypeAdapter() {
		if (dateTypeItemProvider == null) {
			dateTypeItemProvider = new DateTypeItemProvider(this);
		}

		return dateTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.TimeOfDayType}
	 * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected TimeOfDayTypeItemProvider timeOfDayTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.TimeOfDayType}. <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createTimeOfDayTypeAdapter() {
		if (timeOfDayTypeItemProvider == null) {
			timeOfDayTypeItemProvider = new TimeOfDayTypeItemProvider(this);
		}

		return timeOfDayTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.LtodType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected LtodTypeItemProvider ltodTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.LtodType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createLtodTypeAdapter() {
		if (ltodTypeItemProvider == null) {
			ltodTypeItemProvider = new LtodTypeItemProvider(this);
		}

		return ltodTypeItemProvider;
	}

	/** This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.LdateType} instances.
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	protected LdateTypeItemProvider ldateTypeItemProvider;

	/** This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.LdateType}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter createLdateTypeAdapter() {
		if (ldateTypeItemProvider == null) {
			ldateTypeItemProvider = new LdateTypeItemProvider(this);
		}

		return ldateTypeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link org.eclipse.fordiac.ide.model.data.InternalDataType} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected InternalDataTypeItemProvider internalDataTypeItemProvider;

	/**
	 * This creates an adapter for a {@link org.eclipse.fordiac.ide.model.data.InternalDataType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createInternalDataTypeAdapter() {
		if (internalDataTypeItemProvider == null) {
			internalDataTypeItemProvider = new InternalDataTypeItemProvider(this);
		}

		return internalDataTypeItemProvider;
	}

	/** This returns the root adapter factory that contains this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public ComposeableAdapterFactory getRootAdapterFactory() {
		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
	}

	/** This sets the composed adapter factory that contains this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
		this.parentAdapterFactory = parentAdapterFactory;
	}

	/** <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public boolean isFactoryForType(Object type) {
		return supportedTypes.contains(type) || super.isFactoryForType(type);
	}

	/** This implementation substitutes the factory itself as the key for the adapter. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public Adapter adapt(Notifier notifier, Object type) {
		return super.adapt(notifier, this);
	}

	/** <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public Object adapt(Object object, Object type) {
		if (isFactoryForType(type)) {
			Object adapter = super.adapt(object, type);
			if (!(type instanceof Class<?>) || (((Class<?>) type).isInstance(adapter))) {
				return adapter;
			}
		}

		return null;
	}

	/** This adds a listener. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public void addListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.addListener(notifyChangedListener);
	}

	/** This removes a listener. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public void removeListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.removeListener(notifyChangedListener);
	}

	/** This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}. <!-- begin-user-doc --> <!--
	 * end-user-doc -->
	 *
	 * @generated */
	@Override
	public void fireNotifyChanged(Notification notification) {
		changeNotifier.fireNotifyChanged(notification);

		if (parentAdapterFactory != null) {
			parentAdapterFactory.fireNotifyChanged(notification);
		}
	}

	/** This disposes all of the item providers created by this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
	 *
	 * @generated */
	@Override
	public void dispose() {
		if (anyDerivedTypeItemProvider != null)
			anyDerivedTypeItemProvider.dispose();
		if (arrayTypeItemProvider != null)
			arrayTypeItemProvider.dispose();
		if (directlyDerivedTypeItemProvider != null)
			directlyDerivedTypeItemProvider.dispose();
		if (enumeratedTypeItemProvider != null)
			enumeratedTypeItemProvider.dispose();
		if (enumeratedValueItemProvider != null)
			enumeratedValueItemProvider.dispose();
		if (structuredTypeItemProvider != null)
			structuredTypeItemProvider.dispose();
		if (subrangeItemProvider != null)
			subrangeItemProvider.dispose();
		if (subrangeTypeItemProvider != null)
			subrangeTypeItemProvider.dispose();
		if (valueTypeItemProvider != null)
			valueTypeItemProvider.dispose();
		if (derivedTypeItemProvider != null)
			derivedTypeItemProvider.dispose();
		if (eventTypeItemProvider != null)
			eventTypeItemProvider.dispose();
		if (anyTypeItemProvider != null)
			anyTypeItemProvider.dispose();
		if (anyElementaryTypeItemProvider != null)
			anyElementaryTypeItemProvider.dispose();
		if (anyMagnitudeTypeItemProvider != null)
			anyMagnitudeTypeItemProvider.dispose();
		if (anyNumTypeItemProvider != null)
			anyNumTypeItemProvider.dispose();
		if (anyRealTypeItemProvider != null)
			anyRealTypeItemProvider.dispose();
		if (realTypeItemProvider != null)
			realTypeItemProvider.dispose();
		if (lrealTypeItemProvider != null)
			lrealTypeItemProvider.dispose();
		if (anyIntTypeItemProvider != null)
			anyIntTypeItemProvider.dispose();
		if (anyUnsignedTypeItemProvider != null)
			anyUnsignedTypeItemProvider.dispose();
		if (usintTypeItemProvider != null)
			usintTypeItemProvider.dispose();
		if (uintTypeItemProvider != null)
			uintTypeItemProvider.dispose();
		if (udintTypeItemProvider != null)
			udintTypeItemProvider.dispose();
		if (ulintTypeItemProvider != null)
			ulintTypeItemProvider.dispose();
		if (anySignedTypeItemProvider != null)
			anySignedTypeItemProvider.dispose();
		if (sintTypeItemProvider != null)
			sintTypeItemProvider.dispose();
		if (intTypeItemProvider != null)
			intTypeItemProvider.dispose();
		if (dintTypeItemProvider != null)
			dintTypeItemProvider.dispose();
		if (lintTypeItemProvider != null)
			lintTypeItemProvider.dispose();
		if (anyDurationTypeItemProvider != null)
			anyDurationTypeItemProvider.dispose();
		if (timeTypeItemProvider != null)
			timeTypeItemProvider.dispose();
		if (ltimeTypeItemProvider != null)
			ltimeTypeItemProvider.dispose();
		if (anyBitTypeItemProvider != null)
			anyBitTypeItemProvider.dispose();
		if (boolTypeItemProvider != null)
			boolTypeItemProvider.dispose();
		if (byteTypeItemProvider != null)
			byteTypeItemProvider.dispose();
		if (wordTypeItemProvider != null)
			wordTypeItemProvider.dispose();
		if (dwordTypeItemProvider != null)
			dwordTypeItemProvider.dispose();
		if (lwordTypeItemProvider != null)
			lwordTypeItemProvider.dispose();
		if (anyCharsTypeItemProvider != null)
			anyCharsTypeItemProvider.dispose();
		if (anyStringTypeItemProvider != null)
			anyStringTypeItemProvider.dispose();
		if (stringTypeItemProvider != null)
			stringTypeItemProvider.dispose();
		if (wstringTypeItemProvider != null)
			wstringTypeItemProvider.dispose();
		if (anyCharTypeItemProvider != null)
			anyCharTypeItemProvider.dispose();
		if (charTypeItemProvider != null)
			charTypeItemProvider.dispose();
		if (wcharTypeItemProvider != null)
			wcharTypeItemProvider.dispose();
		if (anyDateTypeItemProvider != null)
			anyDateTypeItemProvider.dispose();
		if (dateAndTimeTypeItemProvider != null)
			dateAndTimeTypeItemProvider.dispose();
		if (ldtTypeItemProvider != null)
			ldtTypeItemProvider.dispose();
		if (dateTypeItemProvider != null)
			dateTypeItemProvider.dispose();
		if (timeOfDayTypeItemProvider != null)
			timeOfDayTypeItemProvider.dispose();
		if (ltodTypeItemProvider != null)
			ltodTypeItemProvider.dispose();
		if (ldateTypeItemProvider != null)
			ldateTypeItemProvider.dispose();
	}

}
